using System;
using BizTalk.BuildGenerator.MetaData;

namespace BizTalk.BuildGenerator
{
    /// <summary>
    /// These are the args for generating the build
    /// </summary>
    [Serializable]
    public class GenerationArgs
    {
        //1. Describe Application
        //2. Include any binding info
        //3. Include deployment msi info
        //4. Include Unit Testing
        //5. PreBuild Setup
        //6. 
        private ApplicationSetup _ApplicationSetup = new ApplicationSetup();
        private UnitTesting _UnitTesting = new UnitTesting();
        private ApplicationDeployment _ApplicationDeployment = new ApplicationDeployment();
        private ApplicationBindings _ApplicationBindings = new ApplicationBindings();
        private ApplicationDescription _ApplicationDescription = new ApplicationDescription();
        private PublishedWebServices _WebServices = new PublishedWebServices();
        private BuildReferences _BuildReferences = new BuildReferences();
        private string _OutputFolder;


        public BuildReferences BuildReferences
        {
            get { return _BuildReferences; }
            set { _BuildReferences = value; }
        }

        public string OutputFolder
        {
            get { return _OutputFolder; }
            set { _OutputFolder = value; }
        }

        public PublishedWebServices WebServices
        {
            get { return _WebServices; }
            set { _WebServices = value; }
        }

        public ApplicationDescription ApplicationDescription
        {
            get { return _ApplicationDescription; }
            set { _ApplicationDescription = value; }
        }


        public ApplicationBindings ApplicationBindings
        {
            get { return _ApplicationBindings; }
            set { _ApplicationBindings = value; }
        }


        public ApplicationDeployment ApplicationDeployment
        {
            get { return _ApplicationDeployment; }
            set { _ApplicationDeployment = value; }
        }


        public UnitTesting UnitTesting
        {
            get { return _UnitTesting; }
            set { _UnitTesting = value; }
        }


        public ApplicationSetup ApplicationSetup
        {
            get { return _ApplicationSetup; }
            set { _ApplicationSetup = value; }
        }
    }
}